package cn.fxzhang.leetcode.contest.week237;

import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;

/**
 * 5736. 单线程 CPU
 *
 * 类型：最小堆
 * 题解：根据任务的持续时间建堆
 * 时间复杂度：O(NlogN)
 * 空间复杂度：O(N)
 *
 * 提交记录(0/2)：
 * 执行用时: 0 ms, 击败了100.00%
 * 内存消耗: 37.8 MB, 击败了77.84%
 * todo 本题尚未通过
 *
 * 【中等】通过次数116,961提交次数267,848
 * @author 张晓帆
 * @date 2021/4/18
 */
public class P5736_Single_Threaded_Cpu {

    public int[] getOrder(int[][] oldTasks) {
        int n = oldTasks.length;
        int[][] tasks = new int[n][3];
        for (int i=0; i<n; i++){
            tasks[i][0] = oldTasks[i][0];
            tasks[i][1] = oldTasks[i][1];
            tasks[i][2] = i;
        }
        Arrays.sort(tasks, Comparator.comparingInt(x -> x[0]));
        PriorityQueue<Integer> heep = new PriorityQueue<>((x, y)->{
            if (tasks[x][1] == tasks[y][1]){
                return tasks[x][2]-tasks[y][2];
            }
            return tasks[x][1]-tasks[y][1];
        });
        return new int[]{};
    }


}
